﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Data;

namespace prjMateriais
{
    public partial class frmGrafico : Form
    {
        public frmGrafico()
        {
            InitializeComponent();
            firstClick = true;
            this.ShowDialog();
        }

        private void frmGrafico_Load(object sender, EventArgs e)
        {

        }

        private void gerarGrafico()
        {
            //            string sql = @"SELECT  MONTHNAME(Movimentacoes.Data) as Mes, Sum(Movimentacoes.Quantidade)  AS Quantidade
            //                           FROM  Movimentacoes, material, Lote
            //                           WHERE (Material.Codigo = " + cboMaterial.SelectedValue + @")
            //                           AND (Movimentacoes.HistoricoMovimentacao IN (SELECT Codigo  FROM HistoricoMovimentacao WHERE Nome like '%Saida%'))
            //                           AND (Movimentacoes.Lote = Lote.Codigo AND Lote.CodigoMaterial = Material.Codigo)
            //                           GROUP BY (Movimentacoes.Lote),  Movimentacoes.Data";

            string sql = @"SELECT        { fn MONTHNAME(Movimentacoes.Data) } AS Mes, SUM(Movimentacoes.Quantidade) AS Quantidade
                        FROM            Movimentacoes INNER JOIN
                        Lote ON Movimentacoes.Lote = Lote.Codigo INNER JOIN
                        Material ON Lote.CodigoMaterial = Material.Codigo
                        WHERE        (Movimentacoes.HistoricoMovimentacao IN
                             (SELECT        Codigo
                               FROM            HistoricoMovimentacao
                               WHERE        (Nome LIKE '%Saida%'))) AND (Material.Codigo = " + cboMaterial.SelectedValue + @")
                        GROUP BY Movimentacoes.Lote, Movimentacoes.Data";

            DataTable dt = Conexao.getInstance.executeQuery(sql);
            chartConsumo.DataSource = dt;
            chartConsumo.DataBind();
            chartConsumo.Titles[0].Text = "Consumo mensal do Material " + cboMaterial.Text;
        }

        public bool firstClick { get; set; }

        private void cboMaterial_SelectedIndexChanged_1(object sender, EventArgs e)
        {
            try
            {
                gerarGrafico();
            }
            catch
            {
            }
        }

        private void cboMaterial_Click_1(object sender, EventArgs e)
        {
            if (firstClick)
            {
                DataTable dados = Conexao.getInstance.executeQuery(SqlCrud.getInstance.selectAll(ConstTabelas.MATERIAL));
                cboMaterial.DataSource = dados;
                cboMaterial.DisplayMember = "Nome";
                cboMaterial.ValueMember = ConstTabelas.MATERIAL_PK;
                firstClick = false;
            }
        }
    }
}
